﻿package mortal.game.view.forging.util
{
    import Message.DB.Tables.*;
    import extend.language.*;
    import mortal.game.resource.info.item.*;
    import mortal.game.resource.tableConfig.*;
    import mortal.game.utils.*;
    import mortal.game.view.common.util.*;
    import mortal.game.view.forging.data.*;

    public class StarAdvanceUtil extends Object
    {

        public function StarAdvanceUtil()
        {
            return;
        }// end function

        public static function getFailAdvanceDesc(param1:ItemData) : String
        {
            var _loc_2:String = null;
            var _loc_3:* = param1.extInfo ? (param1.extInfo.qual) : (0);
            var _loc_4:* = getStarMaxLimit(param1);
            if (!(param1 && param1.itemInfo.level >= 50 && param1.itemInfo.color >= ForgingConst.EquipColor_Cheng))
            {
                _loc_2 = Language.getString(41056);
            }
            else if (_loc_3 >= _loc_4)
            {
                if (_loc_4 == 0)
                {
                    _loc_2 = Language.getString(41057);
                }
                else
                {
                    _loc_2 = Language.getString(41058);
                }
            }
            return _loc_2;
        }// end function

        public static function getStarMaxLimit(param1:ItemData) : int
        {
            var _loc_4:int = 0;
            var _loc_2:* = (param1.itemInfo as ItemEquipInfo).qualityLimited;
            var _loc_3:* = EquipAdvanceConfig.instance.getQualityLimitLevel(param1.itemInfo.level);
            if (_loc_2 == 0)
            {
                return 0;
            }
            if (_loc_2 > 0)
            {
                _loc_4 = _loc_2 < _loc_3 ? (_loc_2) : (_loc_3);
            }
            return _loc_4;
        }// end function

        public static function getStarAdvanceConsumeInfo(param1:ItemData) : Array
        {
            var _loc_5:TEquipAdvance = null;
            var _loc_9:String = null;
            var _loc_10:Array = null;
            var _loc_11:int = 0;
            var _loc_12:int = 0;
            var _loc_2:* = param1.itemInfo.level;
            var _loc_3:* = param1.extInfo ? (param1.extInfo.qual) : (0);
            var _loc_4:* = EquipmentUtil.getCategoryByEquipType(param1.itemInfo.type);
            var _loc_6:Array = [0, 0];
            var _loc_7:int = 0;
            while (_loc_7 < _loc_3)
            {
                
                _loc_5 = EquipAdvanceConfig.instance.getInfo(_loc_2, _loc_7, _loc_4);
                if (_loc_5)
                {
                    _loc_9 = _loc_5.consumeItem;
                    _loc_10 = _loc_9.split("#");
                    _loc_11 = int(_loc_10[0]);
                    _loc_12 = int(_loc_10[1]);
                    _loc_6[0] = _loc_11;
                    _loc_6[1] = _loc_6[1] + _loc_12;
                }
                _loc_7++;
            }
            var _loc_8:* = new ItemData(_loc_6[0]);
            if (ItemsUtil.isBind(_loc_8))
            {
                _loc_6[0] = _loc_8.itemInfo.code;
            }
            else
            {
                _loc_6[0] = _loc_8.itemInfo.codeUnbind;
            }
            return _loc_6;
        }// end function

        public static function getBaseAttrValueToStar(param1:ItemData, param2:String) : int
        {
            var _loc_3:* = param1.itemInfo.level;
            var _loc_4:* = param1.itemInfo.type;
            var _loc_5:* = param1.itemInfo.career;
            var _loc_6:* = EquipQualityConfig.instance.getInfoByLevelAndType(_loc_3, _loc_4, _loc_5);
            if (_loc_6)
            {
                return _loc_6[param2] as int;
            }
            return 0;
        }// end function

    }
}
